/*
 * ContasReceber.java
 *
 * Created on October 12, 2007, 10:46 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package petstore.model;

import petstore.model.enumeration.SituacaoContaReceber;
import java.util.Collection;
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Entity class ContasReceber
 *
 * @author Tom Hayden
 */
@Entity
@Table(name = "contas_receber")
@AttributeOverride(name="id", column=@Column(name="cdcontareceber"))
public class ContaReceber extends BusinessObject {
    
    @Column(name = "dtemissaoctareceber")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataEmissao;
    
    @Column(name = "vlrtotctareceber")
    private Double valorTotal;
    
    @Column(name = "stcontareceber")
    @Enumerated(EnumType.ORDINAL)
    private SituacaoContaReceber situacaoContaReceber;
    
    @Column(name = "ativo")
    private boolean active;
    
    @OneToMany(cascade = CascadeType.ALL)
    private Collection<ParcelaReceber> parcelas;
    
    @ManyToOne
    @JoinColumn(name="cdvenda")
    private Venda venda;
    
    @ManyToOne
    @JoinColumn(name="cdcliente")
    private Cliente cliente;
    
    @ManyToOne
    @JoinColumn(name="cdcontacontabil")
    private ContaContabil contaContabil;
    
    /** Creates a new instance of ContasReceber */
    public ContaReceber() {
    }

    public Date getDataEmissao() {
        return dataEmissao;
    }

    public void setDataEmissao(Date dataEmissao) {
        this.dataEmissao = dataEmissao;
    }

    public Double getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(Double valorTotal) {
        this.valorTotal = valorTotal;
    }

    public SituacaoContaReceber getSituacaoContaReceber() {
        return situacaoContaReceber;
    }

    public void setSituacaoContaReceber(SituacaoContaReceber situacaoContaReceber) {
        this.situacaoContaReceber = situacaoContaReceber;
    }

    public boolean isActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public Collection<ParcelaReceber> getParcelas() {
        return parcelas;
    }

    public void setParcelas(Collection<ParcelaReceber> parcelas) {
        this.parcelas = parcelas;
    }

    public Venda getVenda() {
        return venda;
    }

    public void setVenda(Venda venda) {
        this.venda = venda;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public ContaContabil getContaContabil() {
        return contaContabil;
    }

    public void setContaContabil(ContaContabil contaContabil) {
        this.contaContabil = contaContabil;
    }

}
